package br.com.fiap.mercadinho.bean;

import java.io.Serializable;

public class Stock implements Serializable {

	private static final long serialVersionUID = 2887861377357238276L;
	private Integer id;
	private Integer quantity;
	private Product product;
	private boolean invalidQuantity;
	
	public Stock() {

	}

	public Stock(Product prod) {
		this.id = 0;
		this.quantity = 0;
		this.product = prod;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public void setId(String id) {
		if (id != null && !id.equals("")) {
			this.id = Integer.valueOf(id);
		} else {
			this.id = 0;
		}
	}

	public Integer getQuantity() {
		return quantity;
	}

	public void setQuantity(Integer quantity) {
		this.quantity = quantity;
	}

	public void setQuantity(String quantity) {
		if (quantity != null && !quantity.equals("")) {
			try {
				this.quantity = Integer.valueOf(quantity);
			} catch (Exception e) {
				this.quantity = 0;
				invalidQuantity = true;
			}
		} else {
			this.quantity = 0;
		}
	}

	public Product getProduct() {
		return product;
	}

	public void setProduct(Product product) {
		this.product = product;
	}

	public String validateStock() {
		if (this.quantity < 0) {
			return "A quantidade de um poduto no estoque deve ser maior que 0";
		} else if (invalidQuantity) {
			return "A quantidade de um poduto deve ser um numero.";
		}
		return "";
	}

	public void setProductId(String productId) {
		if (this.product == null) {
			this.product = new Product();
		}
		this.product.setId(productId);
	}

	public Integer getProductId() {
		return this.product.getId();
	}

	public String getProductDescription() {
		return this.product.getDescription();
	}
	
	public void addQuantityProduct(Integer quantity){
		this.quantity += quantity;
	}
	
	public void subtractQuantityProduct(Integer quantity){
		this.quantity -= quantity;
	}

}
